1. Field of the Invention
The invention relates generally to storage area networks (“SAN”) and more specifically relates to active-active support of virtual storage management in a storage area network.
2. Discussion of Related Art
A computer system typically comprises or connects to a storage system for storing data used by the computer system. Especially in large enterprises, storage needs of computer servers have grown exponentially. To meet such storage needs, the industry has provided storage area networks (“SAN”) for allowing computer servers to remotely connect to one or more storage systems that comprise a number of disk drives. Typically, a computer server is able to address a piece of data provided by the SAN at a lower data block level rather than at a higher file level.
In some instances, an address that a computer server uses to access a data block of a storage system is an actual address of the physical storage system. By contrast, in other instances an address that a computer server uses to access a virtual storage volume does not exist in a physical storage system. Rather, the virtual storage volume represents an abstraction of one or more physical storage systems that a storage manager presents to the computer server. The storage manager receives the address within the virtual storage volume from the computer, and uses a mapping to map the address to an actual address that does exist in the physical storage system.
It is noted that what is generally referred to as “meta-data” includes the mapping and other relevant information. The storage manager may comprise a computing device including a Fibre Channel appliance, a Redundant Array of Independent Disks (“RAID”) controller, or an enhanced Fibre Channel switch, among others. The virtual storage volume is “virtual” because an address of the virtual storage volume does not exist directly in a physical storage system. Rather, each portion of the virtual storage volume is mapped by one or more storage managers to an area of one or more storage systems based on the mapping. A “map fault” occurs in a storage manager if a mapping needs to be updated, for example, if a portion of the virtual storage volume needs to be written to another area of the storage system or another storage system. A computer server is able to access the virtual storage volume by communicating with the one or more storage managers as if the computer server is accessing an actual storage volume.
To improve reliability, storage managers may act in active-passive pairs so that if an active storage manager fails for some reason, certain configuration data relating to the virtual storage volume(s) managed by the active storage manager would have been replicated to a passive storage manager to allow the passive storage manager to become active and continue to provide service to a computer server. However, the computer server typically needs to have special multi-pathing software installed and properly configured in order to communicate with alternate storage managers. Additionally, before the passive storage manager becomes active, the passive storage manager is unable to provide service to the computer server, and is unable to share the work load of the active storage manager.
To allow storage managers to act in an active-active mode, prior techniques and structures have provided an I/O shipping technique. The technique provides that either storage manager is able to provide service to a computer server. However, for a particular virtual storage volume (or an area of the virtual storage volume), only a single preferred storage manager is allowed to write data received from the computer server to a corresponding storage system. Similarly, only the single preferred storage manager is allowed to update the mapping of the virtual storage volume to the corresponding storage system.
If the data to be written is received by a non-preferred storage manager instead of the preferred storage manager, the non-preferred storage manager needs to “ship” the entire data to the preferred storage manager first. Subsequently, the preferred storage manager then actually writes the data to the corresponding storage system and may also update the mapping. Although the non-preferred storage manager may appear no different from the preferred storage manager as seen by the computer server, shipping input/output data in the background among storage managers results in significant overhead and performance degradation.
Alternatively, prior techniques and structures have provided an active-active model supported by shared memory. Under this model, rather than allowing only the single preferred storage manager to update the mapping of the virtual storage volume to the corresponding storage system, multiple storage managers are allowed to update the mapping through a shared memory. However, special and/or complex (hence expensive) hardware needs to be used to implement the shared memory. Additionally, the storage managers generally need to be located in close proximity to each other, for example in order to maintain access speed through the shared memory. Consequently, additional storage managers cannot be readily and/or inexpensively added to the SAN.
Thus it is an ongoing challenge to maintain high performance and reliability of a SAN with active-active storage managers.